package com.wgchao.amc.mapstruct.dto;

import com.fasterxml.jackson.annotation.JsonInclude;
import java.io.Serializable;

import com.wgchao.amc.common.validate.Save;
import com.wgchao.amc.common.validate.Update;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @作者  wgchao
 * @时间 2019-10-20 
 * @用途  
 */

@AllArgsConstructor
@NoArgsConstructor
@Data
@JsonInclude(content = JsonInclude.Include.NON_NULL)
@ApiModel(value="SysBaseUserDTO",description="用户信息")
public class SysBaseUserDTO  implements Serializable {

	private static final long serialVersionUID =  5471545084991701938L;

	@NotNull(message = "用户ID缺失", groups = {Update.class})
	@ApiModelProperty(value="主键",name="id")
	private Long id;

	/**
	 * 用户名称
	 */
	@NotNull(message = "用户名称缺失", groups = {Save.class, Update.class})
	@ApiModelProperty(value="用户名称",name="name")
	private String name;

	/**
	 * 账户名
	 */
	@NotNull(message = "账户名缺失", groups = {Save.class, Update.class})
	@ApiModelProperty(value="账户名",name="uname")
	private String uname;

	/**
	 * 账户密码
	 */
	@NotNull(message = "账户密码缺失", groups = {Save.class, Update.class})
	@ApiModelProperty(value="账户密码",name="password")
	private String password;

	/**
	 * 所属机构
	 */
	@NotNull(message = "用户所属机构缺失", groups = {Save.class, Update.class})
	@ApiModelProperty(value="所属机构",name="agencyCode")
	private String agencyCode;

	/**
	 * 账户类型 默认为后台管理账户。1:接口使用账户 2:综合账户
	 */
	@ApiModelProperty(value="账户类型 默认为后台管理账户。1:接口使用账户 2:综合账户",name="utype")
	private Integer utype;

	/**
	 * 联系电话
	 */
	@ApiModelProperty(value="联系电话",name="tel")
	private String tel;

	/**
	 * 邮箱
	 */
	@ApiModelProperty(value="邮箱",name="email")
	private String email;

	/**
	 * 备注
	 */
	@ApiModelProperty(value="备注",name="remark")
	private String remark;

	/**
	 * 创建时间
	 */
	@ApiModelProperty(value="创建时间",name="createTime")
	private Date createTime;

	/**
	 * 创建人
	 */
	@ApiModelProperty(value="创建人",name="createUser")
	private Long createUser;

	/**
	 * 最近更新时间
	 */
	@ApiModelProperty(value="最近更新时间",name="lastUpdateTime")
	private Date lastUpdateTime;

	/**
	 * 最近更新人
	 */
	@ApiModelProperty(value="最近更新人",name="lastUpdateUser")
	private Long lastUpdateUser;

	/**
	 * 删除标志
	 */
	@ApiModelProperty(value="删除标志",name="del")
	private boolean del;

	/**
	 * 删除时间
	 */
	@ApiModelProperty(value="删除时间",name="delTime")
	private Date delTime;

	/**
	 * 删除人
	 */
	@ApiModelProperty(value="删除人",name="delUser")
	private Long delUser;

	/**
	 * 注销标志
	 */
	@ApiModelProperty(value="注销标志",name="cancel")
	private boolean cancel;

	@ApiModelProperty(value="所属机构信息",name="agencyInfo")
	private SysBaseAgencyDTO agencyInfo;
	@ApiModelProperty(value="创建人信息",name="createUserInfo")
	private SysBaseUserDTO createUserInfo;
	@ApiModelProperty(value="最近更新人信息",name="lastUpdateUserInfo")
	private SysBaseUserDTO lastUpdateUserInfo;
	@ApiModelProperty(value="删除人信息",name="delUserInfo")
	private SysBaseUserDTO delUserInfo;
	@ApiModelProperty(value="所属部门信息",name="groupInfos")
	private List<SysBaseGroupDTO> groupInfos;
	@ApiModelProperty(value="用户角色信息",name="roleInfos")
	private List<SysBaseUrDTO> roleInfos;

}
